# -*- coding: utf-8 -*-
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from google.cloud.dataproc_v1 import gapic_version as package_version

__version__ = package_version.__version__


from .services.autoscaling_policy_service import (
    AutoscalingPolicyServiceAsyncClient,
    AutoscalingPolicyServiceClient,
)
from .services.batch_controller import BatchControllerAsyncClient, BatchControllerClient
from .services.cluster_controller import (
    ClusterControllerAsyncClient,
    ClusterControllerClient,
)
from .services.job_controller import JobControllerAsyncClient, JobControllerClient
from .services.node_group_controller import (
    NodeGroupControllerAsyncClient,
    NodeGroupControllerClient,
)
from .services.session_controller import (
    SessionControllerAsyncClient,
    SessionControllerClient,
)
from .services.session_template_controller import (
    SessionTemplateControllerAsyncClient,
    SessionTemplateControllerClient,
)
from .services.workflow_template_service import (
    WorkflowTemplateServiceAsyncClient,
    WorkflowTemplateServiceClient,
)
from .types.autoscaling_policies import (
    AutoscalingPolicy,
    BasicAutoscalingAlgorithm,
    BasicYarnAutoscalingConfig,
    CreateAutoscalingPolicyRequest,
    DeleteAutoscalingPolicyRequest,
    GetAutoscalingPolicyRequest,
    InstanceGroupAutoscalingPolicyConfig,
    ListAutoscalingPoliciesRequest,
    ListAutoscalingPoliciesResponse,
    UpdateAutoscalingPolicyRequest,
)
from .types.batches import (
    Batch,
    CreateBatchRequest,
    DeleteBatchRequest,
    GetBatchRequest,
    ListBatchesRequest,
    ListBatchesResponse,
    PySparkBatch,
    SparkBatch,
    SparkRBatch,
    SparkSqlBatch,
)
from .types.clusters import (
    AcceleratorConfig,
    AutoscalingConfig,
    AuxiliaryNodeGroup,
    AuxiliaryServicesConfig,
    Cluster,
    ClusterConfig,
    ClusterMetrics,
    ClusterStatus,
    ConfidentialInstanceConfig,
    CreateClusterRequest,
    DataprocMetricConfig,
    DeleteClusterRequest,
    DiagnoseClusterRequest,
    DiagnoseClusterResults,
    DiskConfig,
    EncryptionConfig,
    EndpointConfig,
    GceClusterConfig,
    GetClusterRequest,
    IdentityConfig,
    InstanceFlexibilityPolicy,
    InstanceGroupConfig,
    InstanceReference,
    KerberosConfig,
    LifecycleConfig,
    ListClustersRequest,
    ListClustersResponse,
    ManagedGroupConfig,
    MetastoreConfig,
    NodeGroup,
    NodeGroupAffinity,
    NodeInitializationAction,
    ReservationAffinity,
    SecurityConfig,
    ShieldedInstanceConfig,
    SoftwareConfig,
    StartClusterRequest,
    StartupConfig,
    StopClusterRequest,
    UpdateClusterRequest,
    VirtualClusterConfig,
)
from .types.jobs import (
    CancelJobRequest,
    DeleteJobRequest,
    DriverSchedulingConfig,
    FlinkJob,
    GetJobRequest,
    HadoopJob,
    HiveJob,
    Job,
    JobMetadata,
    JobPlacement,
    JobReference,
    JobScheduling,
    JobStatus,
    ListJobsRequest,
    ListJobsResponse,
    LoggingConfig,
    PigJob,
    PrestoJob,
    PySparkJob,
    QueryList,
    SparkJob,
    SparkRJob,
    SparkSqlJob,
    SubmitJobRequest,
    TrinoJob,
    UpdateJobRequest,
    YarnApplication,
)
from .types.node_groups import (
    CreateNodeGroupRequest,
    GetNodeGroupRequest,
    ResizeNodeGroupRequest,
)
from .types.operations import (
    BatchOperationMetadata,
    ClusterOperationMetadata,
    ClusterOperationStatus,
    NodeGroupOperationMetadata,
    SessionOperationMetadata,
)
from .types.session_templates import (
    CreateSessionTemplateRequest,
    DeleteSessionTemplateRequest,
    GetSessionTemplateRequest,
    ListSessionTemplatesRequest,
    ListSessionTemplatesResponse,
    SessionTemplate,
    UpdateSessionTemplateRequest,
)
from .types.sessions import (
    CreateSessionRequest,
    DeleteSessionRequest,
    GetSessionRequest,
    JupyterConfig,
    ListSessionsRequest,
    ListSessionsResponse,
    Session,
    SparkConnectConfig,
    TerminateSessionRequest,
)
from .types.shared import (
    AuthenticationConfig,
    AutotuningConfig,
    Component,
    EnvironmentConfig,
    ExecutionConfig,
    FailureAction,
    GkeClusterConfig,
    GkeNodePoolConfig,
    GkeNodePoolTarget,
    KubernetesClusterConfig,
    KubernetesSoftwareConfig,
    PeripheralsConfig,
    PyPiRepositoryConfig,
    RepositoryConfig,
    RuntimeConfig,
    RuntimeInfo,
    SparkHistoryServerConfig,
    UsageMetrics,
    UsageSnapshot,
)
from .types.workflow_templates import (
    ClusterOperation,
    ClusterSelector,
    CreateWorkflowTemplateRequest,
    DeleteWorkflowTemplateRequest,
    GetWorkflowTemplateRequest,
    InstantiateInlineWorkflowTemplateRequest,
    InstantiateWorkflowTemplateRequest,
    ListWorkflowTemplatesRequest,
    ListWorkflowTemplatesResponse,
    ManagedCluster,
    OrderedJob,
    ParameterValidation,
    RegexValidation,
    TemplateParameter,
    UpdateWorkflowTemplateRequest,
    ValueValidation,
    WorkflowGraph,
    WorkflowMetadata,
    WorkflowNode,
    WorkflowTemplate,
    WorkflowTemplatePlacement,
)

__all__ = (
    "AutoscalingPolicyServiceAsyncClient",
    "BatchControllerAsyncClient",
    "ClusterControllerAsyncClient",
    "JobControllerAsyncClient",
    "NodeGroupControllerAsyncClient",
    "SessionControllerAsyncClient",
    "SessionTemplateControllerAsyncClient",
    "WorkflowTemplateServiceAsyncClient",
    "AcceleratorConfig",
    "AuthenticationConfig",
    "AutoscalingConfig",
    "AutoscalingPolicy",
    "AutoscalingPolicyServiceClient",
    "AutotuningConfig",
    "AuxiliaryNodeGroup",
    "AuxiliaryServicesConfig",
    "BasicAutoscalingAlgorithm",
    "BasicYarnAutoscalingConfig",
    "Batch",
    "BatchControllerClient",
    "BatchOperationMetadata",
    "CancelJobRequest",
    "Cluster",
    "ClusterConfig",
    "ClusterControllerClient",
    "ClusterMetrics",
    "ClusterOperation",
    "ClusterOperationMetadata",
    "ClusterOperationStatus",
    "ClusterSelector",
    "ClusterStatus",
    "Component",
    "ConfidentialInstanceConfig",
    "CreateAutoscalingPolicyRequest",
    "CreateBatchRequest",
    "CreateClusterRequest",
    "CreateNodeGroupRequest",
    "CreateSessionRequest",
    "CreateSessionTemplateRequest",
    "CreateWorkflowTemplateRequest",
    "DataprocMetricConfig",
    "DeleteAutoscalingPolicyRequest",
    "DeleteBatchRequest",
    "DeleteClusterRequest",
    "DeleteJobRequest",
    "DeleteSessionRequest",
    "DeleteSessionTemplateRequest",
    "DeleteWorkflowTemplateRequest",
    "DiagnoseClusterRequest",
    "DiagnoseClusterResults",
    "DiskConfig",
    "DriverSchedulingConfig",
    "EncryptionConfig",
    "EndpointConfig",
    "EnvironmentConfig",
    "ExecutionConfig",
    "FailureAction",
    "FlinkJob",
    "GceClusterConfig",
    "GetAutoscalingPolicyRequest",
    "GetBatchRequest",
    "GetClusterRequest",
    "GetJobRequest",
    "GetNodeGroupRequest",
    "GetSessionRequest",
    "GetSessionTemplateRequest",
    "GetWorkflowTemplateRequest",
    "GkeClusterConfig",
    "GkeNodePoolConfig",
    "GkeNodePoolTarget",
    "HadoopJob",
    "HiveJob",
    "IdentityConfig",
    "InstanceFlexibilityPolicy",
    "InstanceGroupAutoscalingPolicyConfig",
    "InstanceGroupConfig",
    "InstanceReference",
    "InstantiateInlineWorkflowTemplateRequest",
    "InstantiateWorkflowTemplateRequest",
    "Job",
    "JobControllerClient",
    "JobMetadata",
    "JobPlacement",
    "JobReference",
    "JobScheduling",
    "JobStatus",
    "JupyterConfig",
    "KerberosConfig",
    "KubernetesClusterConfig",
    "KubernetesSoftwareConfig",
    "LifecycleConfig",
    "ListAutoscalingPoliciesRequest",
    "ListAutoscalingPoliciesResponse",
    "ListBatchesRequest",
    "ListBatchesResponse",
    "ListClustersRequest",
    "ListClustersResponse",
    "ListJobsRequest",
    "ListJobsResponse",
    "ListSessionTemplatesRequest",
    "ListSessionTemplatesResponse",
    "ListSessionsRequest",
    "ListSessionsResponse",
    "ListWorkflowTemplatesRequest",
    "ListWorkflowTemplatesResponse",
    "LoggingConfig",
    "ManagedCluster",
    "ManagedGroupConfig",
    "MetastoreConfig",
    "NodeGroup",
    "NodeGroupAffinity",
    "NodeGroupControllerClient",
    "NodeGroupOperationMetadata",
    "NodeInitializationAction",
    "OrderedJob",
    "ParameterValidation",
    "PeripheralsConfig",
    "PigJob",
    "PrestoJob",
    "PyPiRepositoryConfig",
    "PySparkBatch",
    "PySparkJob",
    "QueryList",
    "RegexValidation",
    "RepositoryConfig",
    "ReservationAffinity",
    "ResizeNodeGroupRequest",
    "RuntimeConfig",
    "RuntimeInfo",
    "SecurityConfig",
    "Session",
    "SessionControllerClient",
    "SessionOperationMetadata",
    "SessionTemplate",
    "SessionTemplateControllerClient",
    "ShieldedInstanceConfig",
    "SoftwareConfig",
    "SparkBatch",
    "SparkConnectConfig",
    "SparkHistoryServerConfig",
    "SparkJob",
    "SparkRBatch",
    "SparkRJob",
    "SparkSqlBatch",
    "SparkSqlJob",
    "StartClusterRequest",
    "StartupConfig",
    "StopClusterRequest",
    "SubmitJobRequest",
    "TemplateParameter",
    "TerminateSessionRequest",
    "TrinoJob",
    "UpdateAutoscalingPolicyRequest",
    "UpdateClusterRequest",
    "UpdateJobRequest",
    "UpdateSessionTemplateRequest",
    "UpdateWorkflowTemplateRequest",
    "UsageMetrics",
    "UsageSnapshot",
    "ValueValidation",
    "VirtualClusterConfig",
    "WorkflowGraph",
    "WorkflowMetadata",
    "WorkflowNode",
    "WorkflowTemplate",
    "WorkflowTemplatePlacement",
    "WorkflowTemplateServiceClient",
    "YarnApplication",
)
